package com.xiaoxu.rental.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Locale;

import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 *
 * @TableName auto_info
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("auto_info")
@ApiModel(value = "AutoInfo对象", description = "")
public class AutoInfo implements Serializable {
    /**
     * 车辆信息id
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 车牌号码
     */
    private String autoNum;

    /**
     * 厂商id
     */
    private Integer makerId;

    /**
     * 品牌id
     */
    private Integer brandId;

    /**
     * 车辆类型 0 燃油车  1 电动车  2 混动车
     */
    private Integer infoType;

    /**
     * 车辆颜色
     */
    private String color;

    /**
     * 汽车排量
     */
    private Double displacement;

    /**
     * 排量计量单位
     */
    private String unit;

    /**
     * 行驶里程
     */
    private Integer mileage;

    /**
     * 日租金额
     */
    private Integer rent;

    /**
     * 上牌日期
     */
    private Date registrationDate;

    /**
     * 车辆图片
     */
    private String pic;

    /**
     * 押金
     */
    private Integer deposit;

    /**
     * 状态 0-未租   1 -已租   2-维保   3-自用
     */
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(fill= FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField(fill= FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 应保次数
     */
    private Integer expectedNum;

    /**
     * 实保次数
     */
    private Integer actualNum;

    /**
     * 是否删除
     */
    private Integer deleted;


    @TableField(exist = false)
    private String makerName;
    @TableField(exist = false)
    private String brandName;
    @TableField(exist = false)
    private Double lowRent;
    @TableField(exist = false)
    private Double highRent;

    /**
     * 如果你的JSON字符串中只包含日期而没有时间部分，
     * 你可以考虑将其反序列化为LocalDate而不是LocalDateTime。
     * 检查你的实体类中对应的字段类型是否正确。
     * 确保你的LocalDateTime字段在JSON中是以正确的格式表示的。
     * LocalDateTime的格式通常为"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"，
     * 例如"2024-07-30T12:00:00.000+0000"。
     * 如果你的JSON字符串中的日期时间格式与此不同，你需要在反序列化时指定正确的DateTimeFormatter。
     */
    @TableField(exist = false)
    private LocalDate lowRegistrationDate;
    @TableField(exist = false)
    private LocalDate highRegistrationDate;


    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

}
